Recurrent Neural Network(RNN)是神經網絡的一種,常應用在處理時間、空間序列上有強關聯的訊息,文本,是字母和詞彙的序列;語音,是音節的序列;視頻,是圖像的序列;氣象觀測數據,股票交易數據等等,也都是序列數據。
基本的 RNN 是由人工神經元組織成的連續的層的網路。給定層中的每個節點都通過有向連接連接到下一個連續層中的每個其他節點。每個節點(神經元)都有一個時變的實值激活。每個連接都有一個可修改的實值權重。節點要麼是輸入節點從網路外部接收數據,要麼是輸出節點(產生結果),要麼是隱藏節點(在從輸入到輸出的過程中修改數據)。
對於離散時間設置中的監督學習,實值輸入向量序列到達輸入節點,一次一個向量。在任何給定的時間步長,每個非輸入單元將其當前激活(結果)計算為與其連接的所有單元的激活的加權和的非線性函數。可以在特定的時間步長為某些輸出單元提供主管給定的目標激活。例如,如果輸入序列是對應於口語數字的語音信號,則在序列末尾的最終目標輸出可以是對該數字進行分類的標籤。
在給定之前詞語的情況下我們希望產生出下一個詞語是什麼。語言模型的作用就是讓我們可以衡量一個句子的可能性,這對於機器翻譯是很重要的(可能性越高的更可能正確)。而語言模型的另一個作用則是預測下一個詞語是什麼,我們可以通過在輸出的機率詞彙中採樣得到,。對於語言模型,輸入是一序列的詞語(每一個詞語都是one-hot表示),輸出則是一序列的預測的詞語。假設我們想訓練一個Model,可以在我們輸入一串文字時,就正確預測該字串每個字母的下一個字母會是什麼,當我們輸入A時,會知道要輸出p;輸入到Ap時就知道輸出l,以此類推(假設訓練資料集只有Apple這個字串)。假設一開始訓練時,假設資料量很大的話,就必須持續調配權重,直到輸出的機率到最高
不過,RNN有一個缺點,就是越前面的資訊對於後面的決策影響越小,當所經過的時序越多,前面的資訊影響幾乎趨近於零這時候就需要長短期記憶(Long Short Term Memory,以下簡稱LSTM)
參考
https://zh.wikipedia.org/wiki/%E5%BE%AA%E7%8E%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
https://medium.com/@baubibi/%E9%80%9F%E8%A8%98ai%E8%AA%B2%E7%A8%8B-%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92%E5%85%A5%E9%96%80-%E4%BA%8C-954b0e473d7f
https://kknews.cc/zh-tw/news/6jnmq3.html